package com.ruoyi.technician.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 技师管理对象 t_technician
 *
 * @author ruoyi
 * @date 2025-04-07
 */
@Data
public class Technician extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 技师ID
     */
    private Long id;

    /**
     * 技师类型
     */
    @Excel(name = "技师类型")
    private Long technicianType;

    private String technicianTypeName;

    /**
     * 技师姓名
     */
    @Excel(name = "技师姓名")
    private String technicianName;

    /**
     * 技师头像
     */
    @Excel(name = "技师头像")
    private String technicianAvatar;

    /**
     * 技师手机号
     */
    @Excel(name = "技师手机号")
    private String technicianTel;

    /**
     * 在线状态
     */
    @Excel(name = "在线状态")
    private Integer isOnline;

    /**
     * 技师身份
     */
    @Excel(name = "技师身份")
    private Integer technicianIdentity;

    /**
     * 所属商家
     */
    @Excel(name = "所属商家")
    private Long merchantId;

    private String merchantName;


    /**
     * 关联用户
     */
    @Excel(name = "关联用户")
    private Long userId;


    private String userName;

    /**
     * 技师性别
     */
    @Excel(name = "技师性别")
    private Integer technicianSex;

    /**
     * 技师年龄
     */
    @Excel(name = "技师年龄")
    private Integer technicianAge;

    /**
     * 技师openid
     */
    private String openId;

    /**
     * unionid
     */
    private String unionid;

    /**
     * 技师密码
     */
    private String technicianPass;

    /**
     * 技师身份证
     */
    @Excel(name = "技师身份证")
    private String idCard;

    /**
     * 出生年份
     */
    @Excel(name = "出生年份")
    private Integer technicianYear;

    /**
     * 经度
     */
    @Excel(name = "经度")
    private String longitude;

    /**
     * 纬度
     */
    @Excel(name = "纬度")
    private String latitude;

    /**
     * 可服务项目
     */
    @Excel(name = "可服务项目")
    private String serviceItem;

    /**
     * 评分（最高5星）
     */
    @Excel(name = "评分", readConverterExp = "最=高5星")
    private BigDecimal mark;

    /**
     * 用户端展示接单量时间
     */
    @Excel(name = "用户端展示接单量时间")
    private Integer orderReceivingTime;

    /**
     * 总接单量
     */
    private Integer orderReceiving;

    /**
     * 生活照片
     */
    @Excel(name = "生活照片")
    private String lifePhoto;

    /**
     * 民族（例如：汉族）
     */
    @Excel(name = "民族", readConverterExp = "例=如：汉族")
    private String technicianEthnic;

    /**
     * 身高（例如：175（cm））
     */
    @Excel(name = "身高", readConverterExp = "例=如：175（cm")
    private Integer technicianHeight;

    /**
     * 体重（例如：50（kg））
     */
    @Excel(name = "体重", readConverterExp = "例=如：50（kg")
    private BigDecimal technicianWeight;

    /**
     * 技师简介
     */
    @Excel(name = "技师简介")
    private String technicianIntro;

    /**
     * 白天免费距离（单位：km）
     */
    @Excel(name = "白天免费距离", readConverterExp = "单=位：km")
    private BigDecimal dayFreeTolls;

    /**
     * 晚上免费距离（单位：km）
     */
    @Excel(name = "晚上免费距离", readConverterExp = "单=位：km")
    private BigDecimal nightFreeTolls;

    /**
     * 服务距离（单位：km）
     */
    @Excel(name = "服务距离", readConverterExp = "单=位：km")
    private BigDecimal serviceDistance;

    /**
     * 总收入
     */
    private BigDecimal totalRevenue;

    /**
     * 上线时间
     */
    private Date onlineTime;

    /**
     * 分成等级
     */
    @Excel(name = "分成等级")
    private Long gradeId;

    private String gradeName;

    /**
     * 所在城市
     */
    @Excel(name = "所在城市")
    private String serviceCity;

    @Excel(name = "当前定位")
    private String currentLocation;

    /**
     * 技师邀请码
     */
    @Excel(name = "技师邀请码")
    private String technicianInvitationCode;

    /**
     * 技师上级邀请码
     */
    @Excel(name = "技师上级邀请码")
    private String technicianInvitedCode;
    @Excel(name = "所属经纪人")
    private String partnerBrokerName;

    /**
     * 技师来源
     */
    @Excel(name = "技师来源")
    private Integer technicianSource;

    /**
     * 常规项目分成比例（%）
     */
    @Excel(name = "常规项目分成比例", readConverterExp = "%=")
    private BigDecimal splitRate;

    /**
     * 升级套餐分成比例（%）
     */
    @Excel(name = "升级套餐分成比例", readConverterExp = "%=")
    private BigDecimal upgradeSplitRate;

    /**
     * 第一次加钟分成比例（%）
     */
    @Excel(name = "第一次加钟分成比例", readConverterExp = "%=")
    private BigDecimal bellFirstSplitRate;

    /**
     * 第二次加钟分成比例（%）
     */
    @Excel(name = "第二次加钟分成比例", readConverterExp = "%=")
    private BigDecimal bellSecondSplitRate;

    /**
     * 生效开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "生效开始日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date effectStartTime;

    /**
     * 生效结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "生效结束日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date effectEndTime;

    /**
     * 逻辑删除（0=未删除，1=已删除）
     */
    private Integer isDelete;


    /**
     * 加钟率
     */
    private BigDecimal addBellRate;

    /**
     * 余额
     */
    private BigDecimal balance;


    /**
     * 在线时长
     */
    private String totalOnlineTime;

    /**
     * 服务总时长
     */

    private Integer totalServiceTime;
}
